home *** CD-ROM | disk | FTP | other *** search
- /*
- * *********************************************************************
- * * Copyright (C) 1988, 1990 Stanford University. *
- * * Permission to use, copy, modify, and distribute this *
- * * software and its documentation for any purpose and without *
- * * fee is hereby granted, provided that the above copyright *
- * * notice appear in all copies. Stanford University *
- * * makes no representations about the suitability of this *
- * * software for any purpose. It is provided "as is" without *
- * * express or implied warranty. Export of this software outside *
- * * of the United States of America may require an export license. *
- * *********************************************************************
- */
-
- #include <X11/Xlib.h>
- #include "net.h"
- #include "defs.h"
-
-
- #define max( a, b ) ( ( (a) > (b) ) ? (a) : (b) )
- #define min( a, b ) ( ( (a) < (b) ) ? (a) : (b) )
- #define round( aa ) ( (int) ( (aa) + 0.5 ) )
-
-
- typedef unsigned long Pixel;
-
- /* color information */
- typedef struct
- {
- Pixel black;
- Pixel white;
- Pixel traces;
- Pixel hilite;
- Pixel banner_bg;
- Pixel banner_fg;
- Pixel border;
- Pixel disj;
- int mono;
- int color_hilite;
- } COL;
-
- /* pixmaps */
- typedef struct
- {
- Pixmap gray; /* full plane pixmap */
- Pixmap xpat; /* full plane pixmap */
- Pixmap left_arrows; /* full plane pixmap */
- Pixmap right_arrows; /* full plane pixmap */
- Pixmap tops[3]; /* full plane pixmap */
- Pixmap bots[3]; /* full plane pixmap */
- Pixmap chk; /* full plane pixmap */
- Pixmap icon; /* bitmap */
- Pixmap iconbox;
- Pixmap sizebox;
- Pixmap select; /* select hilight pattern */
- } PIX;
-
- /* cursors */
- typedef struct
- {
- Cursor deflt;
- Cursor left;
- Cursor right;
- Cursor timer;
- Cursor move;
- } CURS;
-
-
- typedef struct
- {
- GC black; /* fg = black, bg = white */
- GC white; /* fg = white, bg = black */
- GC inv; /* invert gc, for menus */
- GC invert; /* invert: for move, resize, highlight menu */
- GC gray; /* for gray pattern */
- GC traceBg; /* for traces window */
- GC traceFg;
- GC xpat; /* fpr X pattern */
- GC hilite; /* for hilighting */
- GC unhilite;
- GC curs_on; /* turn cursor on/off */
- GC curs_off;
- GC bannerFg; /* banner fg and bg */
- GC bannerBg;
- GC select; /* select pattern */
- GC border;
- } GCS;
-
-
- #ifndef NULL
- #define NULL 0
- #endif
-
- typedef int Coord;
- typedef long TimeType;
-
-
- typedef struct
- {
- int selected;
- int iconified;
- int tooSmall;
- } Wstate;
-
-
- typedef struct /* Bounding box */
- {
- Coord top, left; /* top left corner */
- Coord bot, right; /* bottom right corner */
- } BBox;
-
-
- typedef struct
- {
- TimeType first;
- TimeType last;
- TimeType start;
- TimeType steps;
- TimeType end;
- TimeType cursor;
- } Times;
-
-
- typedef struct TraceEnt *Trptr;
-
- typedef struct
- {
- int total; /* total number of traces */
- int disp; /* number of traces displayed */
- int maxName; /* longest name */
- int maxDigits; /* longest string of digits */
- Trptr first; /* ptr. to last trace displayed */
- Trptr last; /* list of traces */
- } Traces;
-
-
- typedef struct /* Cache for history pointer */
- {
- hptr wind; /* window start */
- hptr cursor; /* cursor value */
- } Cache;
-
- typedef struct TraceEnt
- {
- Trptr next; /* doubly linked list of traces */
- Trptr prev;
- char *name; /* name stripped of path */
- int len; /* length of name string */
- Coord top, bot; /* position of the trace */
- short bdigit; /* # of bits per digit for displaying */
- short vector; /* 1 if bit vector, 0 if node */
- union
- {
- nptr nd; /* what makes up this trace */
- bptr vec;
- } n;
- Cache cache[1];
- } TraceEnt;
-
-
- #define IsVector( to ) ( to->vector == TRUE and to->n.vec->nbits > 1 )
-
-
- typedef void (*Func)();
-
-
- typedef struct
- {
- char *str; /* item string */
- Func func; /* function to call */
- int len; /* length of str */
- Coord top, bot; /* y position */
- } MenuItem;
-
-
- typedef struct
- {
- char *str; /* header string */
- MenuItem *items; /* items for this menu */
- int len; /* length of header */
- BBox box; /* bounding box of header */
- Window w; /* window to pop-up */
- Coord width, height; /* size of window */
- } Menu;
-
-
- #define MENU_MARK '+'
- #define MENU_UNMARK '-'
-
-
- /* get next history pointer, skiping punted events */
- #define NEXTH( H, P ) for( (H) = (P)->next; (H)->punt; (H) = (H)->next )
-
-